#
# Makefile for Src subdirectory
#
# Copyright (c) 1995-1997 Richard Coleman
# All rights reserved.
#
# Permission is hereby granted, without written agreement and without
# license or royalty fees, to use, copy, modify, and distribute this
# software and to distribute modified versions of this software for any
# purpose, provided that the above copyright notice and the following
# two paragraphs appear in all copies of this software.
#
# In no event shall Richard Coleman or the Zsh Development Group be liable
# to any party for direct, indirect, special, incidental, or consequential
# damages arising out of the use of this software and its documentation,
# even if Richard Coleman and the Zsh Development Group have been advised of
# the possibility of such damage.
#
# Richard Coleman and the Zsh Development Group specifically disclaim any
# warranties, including, but not limited to, the implied warranties of
# merchantability and fitness for a particular purpose.  The software
# provided hereunder is on an "as is" basis, and Richard Coleman and the
# Zsh Development Group have no obligation to provide maintenance,
# support, updates, enhancements, or modifications.
#

subdir = Src
dir_top = ..
SUBDIRS =

@VERSION_MK@

# source/build directories
VPATH           = @srcdir@
sdir            = @srcdir@
sdir_top        = @top_srcdir@
INSTALL         = @INSTALL@
LN		= @LN@

@DEFS_MK@

sdir_src      = $(sdir)
dir_src       = .

# ========= DEPENDENCIES FOR BUILDING ==========

LINK        = $(CC) $(LDFLAGS) $(EXELDFLAGS) $(EXTRA_LDFLAGS) -o $@
DLLINK      = $(DLLD) $(LDFLAGS) $(LIBLDFLAGS) $(DLLDFLAGS) -o $@

all: zsh.export modules
.PHONY: all

modules: headers
.PHONY: modules

L = @L@

LSTMP =
LLIST =
NSTMP = stamp-modobjs
NLIST = `cat stamp-modobjs`

LIBZSH = libzsh-$(VERSION).$(DL_EXT)
NIBZSH =
INSTLIB = @INSTLIB@
UNINSTLIB = @UNINSTLIB@

ZSH_EXPORT = $(EXPOPT)zsh.export
ZSH_NXPORT =
ENTRYOBJ   = modentry..o
NNTRYOBJ   =

LDRUNPATH = LD_RUN_PATH=$(libdir)/$(tzsh)
NDRUNPATH =

EXTRAZSHOBJS = @EXTRAZSHOBJS@

stamp-modobjs: modobjs
	@if cmp -s stamp-modobjs.tmp stamp-modobjs; then \
	    rm -f stamp-modobjs.tmp; \
	    echo "\`stamp-modobjs' is up to date."; \
	else \
	    mv -f stamp-modobjs.tmp stamp-modobjs; \
	    echo "Updated \`stamp-modobjs'."; \
	fi

modobjs: headers rm-modobjs-tmp
.PHONY: modobjs

rm-modobjs-tmp:
	rm -f stamp-modobjs.tmp
.PHONY: rm-modobjs-tmp

@CONFIG_MK@

Makemod: $(CONFIG_INCS) $(dir_top)/config.modules
	@case $(sdir_top) in \
	    /*) top_srcdir=$(sdir_top) ;; \
	    *) top_srcdir=$(subdir)/$(sdir_top) ;; \
	esac; \
	export top_srcdir; \
	echo 'cd $(dir_top) && $(SHELL)' \
	    '$$top_srcdir/$(subdir)/mkmakemod.sh $(subdir) Makemod'; \
	cd $(dir_top) && \
	    $(SHELL) $$top_srcdir/$(subdir)/mkmakemod.sh $(subdir) Makemod
prep: Makemod
	@$(MAKE) -f Makemod $(MAKEDEFS) prep || rm -f Makemod
.PHONY: prep

FORCE:
.PHONY: FORCE

# ========== LINKING IN MODULES ==========

mymods.conf:
	@echo Linking with the standard modules.

modules: $(@E@NTRYOBJ)

$(ENTRYOBJ): FORCE
	@$(MAKE) -f Makemod $(MAKEDEFS) $@

# ========== DEPENDENCIES FOR CLEANUP ==========

# Since module cleanup rules depend on Makemod, they come first.  This
# forces module stuff to get cleaned before Makemod itself gets
# deleted.

mostlyclean-here:
	rm -f stamp-modobjs stamp-modobjs.tmp
.PHONY: mostlyclean-here

clean-here:
	rm -f modules.stamp zsh$(EXEEXT)
	rm -f libzsh-*.$(DL_EXT)
.PHONY: clean-here

distclean-here:
	rm -f TAGS tags
	rm -f Makefile
.PHONY: distclean-here

mostlyclean: mostlyclean-modules
clean: clean-modules
distclean: distclean-modules
realclean: realclean-modules
.PHONY: mostlyclean clean distclean realclean

# Don't remake Makemod just to delete things, even if it doesn't exist.
mostlyclean-modules clean-modules distclean-modules realclean-modules:
	if test -f Makemod; then \
	  $(MAKE) -f Makemod $(MAKEDEFS) `echo $@ | sed 's/-modules//'`; \
	fi; \
	exit 0
.PHONY: mostlyclean-modules clean-modules distclean-modules \
	realclean-modules

@CLEAN_MK@

# ========== RECURSIVE MAKES ==========

modobjs modules headers proto zsh.export: Makemod
	@$(MAKE) -f Makemod $(MAKEDEFS) $@
.PHONY: headers proto
